
var prefix = ctx+"coupon/ecpInfo"
//表单中字典字段	
var dictFields = ["ecpFlag","ecpRefundState"];
//字典类型 顺序与表单字典字段对应
var dictKeys = ["ecpFlag","ecpRefundState","obtainType"];
var dicDatas = {};
var sendTime = null;
var useTime = null;

$(function() {
	load();
	loadDicts();
	//laydate 初始化时间插件
	//TODO 派券时间筛选  待处理
	/*laydate.render({
		elem: '#spacetime',
		range: true
	});*/
	laydate.render({ //初始化发放日期
		elem: '#sendTime1'
	});
	laydate.render({ //初始化发放时间
		elem: '#sendTime2',
		type: 'time',
		range: true
	});
	laydate.render({ //初始化核销日期
		elem: '#useTime1'
	});
	laydate.render({ //初始化核销时间
		elem: '#useTime2',
		type: 'time',
		range: true
	});

});
function loadDicts(){
	$.ajax({
		url : ctx+'common/dict/listdictbykeys',
		data : {'dictKeys':dictKeys},
		async : false,
		success : function(data) {
			dicDatas = data;
		}
	});
	$('#platId').bootstrapSelect({
	    url:ctx+'plat/platInfo/listPlatDict',
	    valueField: 'platId',
	    textField: 'platName',
	    placeholder: "请选择所属平台",
	    onChange:function(value){
	    	if(value == null || value == ''){
	    		return false;
	    	}
			$('#useShopId').bootstrapSelect({
				valueField: 'shopId',
				textField: 'shopName',
				placeholder: "请选择核销门店",
			});
			$('#useShopId').selectpicker('refresh');
	    	//级联商户
	    	$('#merchantId').bootstrapSelect({
	    		url:ctx+'plat/merchantInfo/listMerchantDict/'+value,
	    		valueField: 'merchantId',
	    		textField: 'merchantName',
	    		placeholder: "请选择所属商户",
				onChange:function(value) {
					if (value == null || value == '') {
						return false;
					}
					$('#useShopId').bootstrapSelect({
						url:ctx+'plat/shopInfo/listShopDict/'+value,
						valueField: 'shopId',
						textField: 'shopName',
						placeholder: "请选择核销门店",
					});
					$('#useShopId').selectpicker('refresh');
				}
	    	});
	    	//bootstrap-select使用规则是先执行操作然后refresh
	    	$('#merchantId').selectpicker('refresh');
	    }
	});
	$('#sendStationId').bootstrapSelect({
		url:ctx+'plat/stationInfo/listStation',
		valueField: 'sendStationId',
		textField: 'sendStationName',
		placeholder: "请选择派券加油站",
		onChange:function(value) {
			if (value == null || value == '') {
				return false;
			}
			$('#sendStationId').selectpicker('refresh');
		}
	});
	$('#merchantId').bootstrapSelect({
		valueField: 'merchantId',
		textField: 'merchantName',
		placeholder: "请选择所属商户"
	});
	$('#useShopId').bootstrapSelect({
		url:ctx+'plat/shopInfo/listShopDict',
		valueField: 'shopId',
		textField: 'shopName',
		placeholder: "请选择核销门店",
	});
	$('#ecpFlag').bootstrapSelect({
		data:dicDatas['ecpFlag'],
		valueField: 'value',
		textField: 'name',
		placeholder: "电子券状态"
	});
	$('#obtainType').bootstrapSelect({
		data:dicDatas['obtainType'],
		valueField: 'value',
		textField: 'name',
		placeholder: "获取类型"
	});

	$('#provinceNum').bootstrapSelect({
		url:ctx+'/plat/hyBaseArea/getProvince/',
		valueField: 'areaNum',
		textField: 'areaName',
		placeholder: "省",
		onChange:function(value) {
			if (value == null || value == '') {
				return false;
			}
			$('#cityNum').bootstrapSelect({
				url:ctx+'/plat/hyBaseArea/getCityByProvince/' + value ,
				valueField: 'areaNum',
				textField: 'areaName',
				placeholder: "市"
			});
			$('#cityNum').selectpicker('refresh');
		}
	});

	$('#cityNum').bootstrapSelect({
		valueField: 'value',
		textField: 'name',
		placeholder: "市"
	});
}


function load() {
	$('#exampleTable')
			.bootstrapTable(
					{
						method : 'get', // 服务器数据的请求方式 get or post
						url : prefix + "/list", // 服务器数据的加载地址
						iconSize : 'outline',
						toolbar : '#exampleToolbar',
						striped : true, // 设置为true会有隔行变色效果
						dataType : "json", // 服务器返回的数据类型
						pagination : true, // 设置为true会在底部显示分页条
						singleSelect : false, // 设置为true将禁止多选
						pageSize : 10, // 如果设置了分页，每页数据条数
						pageNumber : 1, // 如果设置了分布，首页页码
						//search : true, // 是否显示搜索框
						showColumns : false, // 是否显示内容下拉框（选择显示的列）
						sidePagination : "server", // 设置在哪里进行分页，可选值为"client" 或者 "server"
						queryParams : function(params) {
							return {
								//说明：传入后台的参数包括offset开始索引，limit步长，sort排序列，order：desc或者,以及所有列的键值对
								limit: params.limit,
								offset:params.offset,
								sendStationId:$("#sendStationId").val(),
                                useTime:useTime,
                                sendTime:sendTime
							};
						},
						columns : [
								{
									checkbox : true
								},
																{
									field : 'ecpId', 
									title : '电子券编号' 
								},
								{
									field : 'orderId', 
									title : '订单编号' 
								},
							{
									field : 'cpId', 
									title : '券编号',
									visible:false

								},
								{
									field : 'platName', 
									title : '平台名称' 
								},
																{
									field : 'merchantName', 
									title : '商户名称' 
								},
								{
									field : 'provinceNum', 
									title : '省' 
								},
								{
									field : 'cityNum', 
									title : '市' 
								},

																{
									field : 'cpName', 
									title : '优惠券名称' 
								},
																{
									field : 'ecpMoney',
									title : '金额'
								},
								{
									field : 'phone', 
									title : '会员手机号'
								},
								{
									field : 'sendTime', 
									title : '派券时间'
								},
								{
									field : 'validEnd', 
									title : '有效期'
								},
								{
									field : 'useShopName',
									title : '核销门店'
								},
								{
									field : 'useTime', 
									title : '核销时间'
								},
								{
									field : 'ecpFlagDesc',
									title : '电子券状态' 
								},
								{
									field : 'refundState',
									title : '退款状态',
									formatter : function(value, row, index) {
										for(var i = 0;i<dicDatas['ecpRefundState'].length;i++){
											if(dicDatas['ecpRefundState'][i].value == value){
												return dicDatas['ecpRefundState'][i].name;
											}
										}
									}
								},{
								field : 'obtainType',
								title : '获取类型',
								formatter : function(value, row, index) {
									for(var i = 0;i<dicDatas['obtainType'].length;i++){
										if(dicDatas['obtainType'][i].value == value){
											return dicDatas['obtainType'][i].name;
										}
									}
								}
							},
																{
									title : '操作',
									field : 'id',
									align : 'center',
									formatter : function(value, row, index) {
										/*var e = '<a class="btn btn-primary btn-sm '+s_edit_h+'" href="#" mce_href="#" title="编辑" onclick="detail(\''
												+ row.ecpId
												+ '\')"><i class="fa fa-edit"></i></a> ';
										var d = '<a class="btn btn-warning btn-sm '+s_remove_h+'" href="#" title="删除"  mce_href="#" onclick="remove(\''
												+ row.ecpId
												+ '\')"><i class="fa fa-remove"></i></a> ';*/
									
										var h = '<a class="btn btn-primary btn-sm '+s_edit_h+'" href="#" title="作废"  mce_href="#" onclick="doObsolete(\''+ row.ecpId + '\',\''+row.version+ '\',\''+row.ecpFlag+'\')"><i class="fa fa-times-circle-o">作废</i></a> ';

										return h;
									}
								} ]
					});
}

function doObsolete(ecpId,version,ecpFlag){
	
	if(ecpFlag == '1'){
		layer.open({
			type : 2,
			title : '作废',
			maxmin : true,
			shadeClose : false, // 点击遮罩关闭层
			area : [ '600px', '500px' ],
			content : prefix + '/obsolete/' + ecpId
		});
		
	}else if(ecpFlag == '0'){
		layer.msg('当前电子券已作废,请不要重复操作');
		return false;
	}else if(ecpFlag == '2'){
		layer.msg('当前电子券已使用,无法作废');
		return false;
	}else{
		
	}
		
	
}
function reLoad() {
	//检验选取的时间段 是否<1小时
	//拼接核销时间
	if($("#useTime1").val()&&$("#useTime2").val()){
		useTime=$("#useTime1").val()+" "+$("#useTime2").val().split(" - ")[0]+" - "+$("#useTime1").val()+" "+$("#useTime2").val().split(" - ")[1];
	}else{
		useTime=null;
	}
	//拼接发放时间
	if($("#sendTime1").val()&&$("#sendTime2").val()){
		sendTime=$("#sendTime1").val()+" "+$("#sendTime2").val().split(" - ")[0]+" - "+$("#sendTime1").val()+" "+$("#sendTime2").val().split(" - ")[1];
	}else{
		sendTime=null;
	}
	//同时选择日期和时间的校验
	if($("#sendTime1").val()){
		if(!$("#sendTime2").val()){
			layer.msg("请选择发送时间");
			return;
		}
	}
	if($("#sendTime2").val()){
		if(!$("#sendTime1").val()){
			layer.msg("请选择发送日期");
			return;
		}
	}
	if($("#useTime1").val()){
		if(!$("#useTime2").val()){
			layer.msg("请选择核销时间");
			return;
		}
	}
	if($("#useTime2").val()){
		if(!$("#useTime1").val()){
			layer.msg("请选择核销日期");
			return;
		}
	}
	//处理时间
	if(useTime){
		console.info("useTime");
		if(!splittime(useTime)){
			layer.msg("核销时间范围应小于1小时");
			return;
		}
	}
	if(sendTime){
		console.info("sendTime");
		if(!splittime(sendTime)){
			layer.msg("发放时间范围应小于1小时");
			return;
		}
	}

	var query = {};
	$.each($("#search-form").serializeArray(), function(i, field) {
		query[field.name] = field.value;
	});
	var opt = {
		query : query
	};
	$('#exampleTable').bootstrapTable('refresh', opt);
}
function add() {
	layer.open({
		type : 2,
		title : '增加',
		maxmin : true,
		shadeClose : false, // 点击遮罩关闭层
		area : [ '800px', '520px' ],
		content : prefix + '/add' // iframe的url
	});
}
function detail(id) {
	alert(id);
	layer.open({
		type : 2,
		title : '编辑',
		maxmin : true,
		shadeClose : false, // 点击遮罩关闭层
		area : [ '800px', '520px' ],
		content : prefix + '/ecpInfo/goEcpInfoRefundApplic/' + id // iframe的url
	});
}
function remove(id) {
	layer.confirm('确定要删除选中的记录？', {
		btn : [ '确定', '取消' ]
	}, function() {
		$.ajax({
			url : prefix+"/remove",
			type : "post",
			data : {
				'ecpId' : id
			},
			success : function(r) {
				if (r.code==0) {
					layer.msg(r.msg);
					reLoad();
				}else{
					layer.msg(r.msg);
				}
			}
		});
	})
}

function resetPwd(id) {
}
function batchRemove() {
	var rows = $('#exampleTable').bootstrapTable('getSelections'); // 返回所有选择的行，当没有选择的记录时，返回一个空数组
	if (rows.length == 0) {
		layer.msg("请选择要删除的数据");
		return;
	}
	layer.confirm("确认要删除选中的'" + rows.length + "'条数据吗?", {
		btn : [ '确定', '取消' ]
	// 按钮
	}, function() {
		var ids = new Array();
		// 遍历所有选择的行数据，取每条数据对应的ID
		$.each(rows, function(i, row) {
			ids[i] = row['ecpId'];
		});
		$.ajax({
			type : 'POST',
			data : {
				"ids" : ids
			},
			url : prefix + '/batchRemove',
			success : function(r) {
				if (r.code == 0) {
					layer.msg(r.msg);
					reLoad();
				} else {
					layer.msg(r.msg);
				}
			}
		});
	}, function() {

	});
}

//生成对账单
function exportExcel() {
	//派券时间段
	var spacetime=$('#spacetime').val();
	if(spacetime){
		var splittime=spacetime.split(" - ");
		//开始时间
		var starttime = splittime[0]+" 00:00:00";
		//结束时间
		var endtime=splittime[1]+" 23:59:59";
		//文件名称
		var filename="电子券对账单";
		window.location.href = prefix + "/export?starttime="+starttime+"&endtime="+endtime+"&filename="+filename;
	}else{
		layer.msg("请选择时间段，导出对账单");
		return;
	}

}

//拆分时间  并检验时间段在一个小时内  此方法只精确到小时
function splittime(time) {
	let split = time.split(" - ");
	//开始时间
	let start = split[0];
	//结束时间
	let end = split[1];
	//校验日期是否在同一天
	if(start.split(" ")[0]==end.split(" ")[0]){
		//检验时间差一个小时
		var Hstart=start.split(" ")[1].split(":")[0];
		var Hend=end.split(" ")[1].split(":")[0];
		if(Hstart+1>Hend){//在一个小时内
			return true;
		}else{
			return false;
		}
	}else{
		//日期相差一天  检验时间差一个小时
		//检验时间差一个小时
		var Hstart=start.split(" ")[1].split(":")[0];
		var mstart=start.split(" ")[1].split(":")[1];
		var Hend=end.split(" ")[1].split(":")[0];
		var mend=end.split(" ")[1].split(":")[1];
		if(Hstart>23&&Hend<1){//开始时间>晚23点  结束时间<凌晨1点
			if(mstart>mend){
				return true;
			}else{
				return false;
			}
		}else{
			return false;
		}
	}
}


